#ifndef SQLITEDAOFACTORY_H_
#define SQLITEDAOFACTORY_H_

#include "SQLiteContentDAO.h"
#include "SQLiteUserDAO.h"
#include "SQLitePreferenceDAO.h"

#include "../DAOFactory.h"
#include "../../../util/Configuration.h"

#include <sqlite3.h>

class SQLiteDAOFactory: public DAOFactory {
private:
	static SQLiteDAOFactory* instance;

	SQLiteContentDAO* contentDAO;
	SQLiteUserDAO* userDAO;
	SQLitePreferenceDAO* preferenceDAO;

	sqlite3* database;

	SQLiteDAOFactory();

public:
	~SQLiteDAOFactory();
	static SQLiteDAOFactory* getInstance();

	virtual void connect_db();
	virtual void disconnect_db();
	virtual ContentDAO* getContentDAO();
	virtual UserDAO* getUserDAO();
	virtual PreferenceDAO* getPreferenceDAO();
};

#endif /* SQLITEDAOFACTORY_H_ */
